package com.tyk.bookstore.front.cart.service;


import com.tyk.bookstore.front.cart.model.query.CartAddQuery;
import com.tyk.bookstore.front.cart.model.query.CartPageQuery;
import com.tyk.bookstore.front.cart.model.query.CartUpdateQuery;
import com.tyk.bookstore.front.cart.model.vo.CartPageVo;
import com.tyk.bookstore.front.cart.model.vo.ShoppingCartVo;

import java.util.List;
import java.util.Set;

/**
 * @author tyk
 * @description 购物车管理
 */
public interface CartService {


    /**
     * 获取购物车详情
     */
    @Deprecated
    ShoppingCartVo getByBookId(Long bookId);

    /**
     * 分页查询购物车
     */
    CartPageVo getPage(CartPageQuery query);

    /**
     * 添加购物车
     */
    void add(CartAddQuery query);

    /**
     * 更新购物车
     */
    void update(CartUpdateQuery query);

    /**
     * 删除购物车
     */
    void deleteByBookId(Long id);

    /**
     * 批量删除购物车
     */
    void deleteBatchByBookIdSet(Set<Long> bookIdSet);

    /**
     * 查询购物车列表
     */
    List<ShoppingCartVo> getList();

    /**
     * 全选/全不选
     */
    void selectAllOrCancelAll(Boolean isAllSelected);

    /**
     * 移除已下架商品
     */
    void cleanOffProduct();

}
